2
תגובות
חיפשתי בגוגל ומצאתי שזאת האפשרות המקבילה ב- PDO:
$result = $q->fetch(PDO::FETCH_ORI_ABS,PDO::FETCH_ORI_ABS,0);

הבעיה היא שיש גם הטוענים שיש עם זה מלא בעיות ושאנשים פשוט מתוסכלים ולא מצליחים.. ועדיף לוותר..
נחשו מה.. גם לי זה לא כל כך עובד.. רציתי לשאול אם מישהו פעם ניסה ויודע איך עובדים עם זה נכון ולמה זה לא עובד לי?

הקוד שכתבתי..
$query = "SELECT name,age FROM users";
$q = $db->prepare($query);
$q->execute();

$q->setFetchMode(PDO::FETCH_ASSOC);

//get all the result's rows into array
$arrayData = $q->fetchAll();

foreach ($arrayData as $row){
 
  echo $row['name'] ." ";
  echo $row['age'] ."<br>";
}

$result = $q->fetch(PDO::FETCH_OBJ,PDO::FETCH_ORI_ABS,0);
var_dump($result);


הווארדאמפ מחזיר false.. רעיונות?

2 תשובות

avatar ענה intval ב 31 למרץ 2013 #

מה אתה מנסה לעשות?
שוב פעם לעבור על כל השורות שהוחזרו לך למרות שכבר יש לך מערך שלם עם הנתונים?

בכל אופן, כדי שזה יעבוד, אתה צריך שהקורסור שלך יהיה בכלל נגיש לאיטרציה ואחזרה לאפס. כדי שזה יקרה, אתה ב prepare צריך להגיד לPDO שאנחנו רוצים scrollable cursor

$dbh->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));

בגלל שבברית מחדל הקורסור הוא PDO::CURSOR_FWDONLY

avatar ענה dennis ב 31 למרץ 2013 #

כן, זה בדיוק מה שרציתי לעשות (הייתי צריך להזכיר את זה בשאלה).
זאת נראת לי בהחלט כמו תשובה נכונה, ראיתי עכשיו עוד כמה דוגמאות דומות במרחבי הרשת, אל אף שכרגע ספציפית זה לא עובד. (ראיתי שהיה באג עם ה cursor שתוקן בכמה גרסאות) אני כבר אסתדר מכאן.

המון תודה, וחג שמח :)